﻿Public Class Mesas : Implements IEquatable(Of Mesas)

    Private _Nombre As String
    Private _Descripcion As String
    Private _Capacidad As Integer
    ''' <summary>
    ''' Nombre de la mesa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Nombre As String
        Get
            Return _Nombre
        End Get
        Set(value As String)
            If value.Length >= 2 Then
                _Nombre = value
            End If
        End Set
    End Property
    ''' <summary>
    ''' Descrición de la mesa
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Descripción As String
        Get
            Return _Descripcion
        End Get
        Set(value As String)
            If value.Length >= 2 Then
                _Descripcion = value
            End If
        End Set
    End Property


    ''' <summary>
    ''' La capacidad de la Mesa mayor que 1 y menor que 30
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property Capacidad As Integer
        Get
            Return _Capacidad
        End Get
        Set(value As Integer)
            If value >= 1 AndAlso value <= 30 Then
                _Capacidad = value
            Else
                _Capacidad = 0
            End If
        End Set
    End Property

    ''' <summary>
    ''' Constructor vacío. Las mesas están sin datos
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()

    End Sub

   
    ''' <summary>
    ''' Constructor con campos. Las mesas se crean con datos
    ''' </summary>
    ''' <param name="nom">Nombre</param>
    ''' <param name="des">Descripción</param>
    ''' <param name="capacidad">Capacidad</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal nom As String, ByVal des As String, ByVal capacidad As Integer)
        Me.Nombre = nom
        Me.Descripción = des
        Me.Capacidad = capacidad
    End Sub

    ''' <summary>
    ''' Define cuando se consideran iguales dos mesas, siendo del mismo tipo (Mesas) les coincide el Nombre
    ''' </summary>
    ''' <param name="other"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function Equals1(other As Mesas) As Boolean Implements System.IEquatable(Of Mesas).Equals
        Return other IsNot Nothing AndAlso other.Nombre.ToLower = Me.Nombre.ToLower
    End Function
End Class
